package com.six.dao;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionInterceptor;

import com.six.vo.Bill;
import com.six.vo.temp.TempBill;

/**
 * IBillDao 业务单数据库 CRUD 操作
 * 
 */
//@Transactional(propagation=Propagation.REQUIRED)
public interface IBillDao {
	/**
	 * 查询指定条件下的业务单（包括出库和入库）
	 * 
	 */
	@Transactional(readOnly=true)
	public List<Bill> findBillList(String beginDate,String endDate,String customerId);
	/**
	 * 查询指定状态下的业务单 整体情况
	 */
	@Transactional(readOnly=true)
	public List<TempBill> findSettlementBills(String billState);
	/**
	 * 保存业务单
	 */
	public void saveBill(Bill b);
	/**
	 * 更新业务单信息
	 */
	public void updateBill(Bill b);
	/**
	 * 删除业务单，将业务单状态置为【删除】状态
	 */
	public void deleteBill(String id)throws Exception;
	/**
	 * 根据业务单 id 查询业务单
	 */
	public Bill findBillById(String id);
	/**
	 * 恢复业务单，将业务单状态置为【活动】状态
	 */
	public void revertBill(String id)throws Exception;
	/**
	 * 根据单据状态查询单据
	 */
	@Transactional(readOnly=true)
	public List<TempBill> findBillList(String beginDate,String endDate,String customerId,String
			storeId,String billState,String billType,String detailsIsDel,String billId);
	/**
	 * 查询指定条件下的业务单列表
	 */
	@Transactional(readOnly=true)
	public List<Bill> findBillList(String billStates);
	
	
}
